/**
 * 启动服务会优先加载这个文件的配置
 */
const path = require('path');
module.exports = (app) => {
	const config = (exports = {});
	// 必须要配置keys
	config.keys = 'abcxxxxcc';
	// 配置需要的中间件，数组顺序即为中间件的加载顺序
	config.middleware = [ 'errorHandler', 'tokenHandler', 'routerHandler' ];
	// egg-router-plus
	config.routerPlus = {
		enable: true,
		package: 'egg-router-plus'
	};
	// mongo配置
	config.mongo = {
		client: {
			host: '127.0.0.1',
			port: '27017',
			name: 'admin',
			user: 'root',
			password: '123456',
			options: {}
		}
	};
	// 数据校验
	config.validate = {
		convert: true,    // 对参数可以使用convertType规则进行类型转换
	};
	config.jwt = {
		secret: '123456',
    };
    // 接口白名单
    config.whiteList = ['/admin/user/login']
    
	// 安全配置 （https://eggjs.org/zh-cn/core/security.html）
	config.security = {
		csrf: {
			enable: false,
			ignoreJSON: true
		},
		// 允许访问接口的白名单
		domainWhiteList: [ '*' ]
	};
	// 跨域配置
	config.cors = {
		origin: '*',
		allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'
	};
	// 保证构建的静态资源文件能够被访问到
	// config.static = { prefix: '/public/', dir: path.join(app.baseDir, 'public') };
	// config.reactssr = { renderOptions: { basedir: path.join(app.baseDir, 'app/web') } };

	// mongoose 会有异常，有点奇怪
	// mongoose: {
	// 	client: {
	// 		url: 'mongodb://127.0.0.1:27017/mock-server',
	// 		user: 'root',
	// 		password: '123456',
	//         options: {
	//             // user: 'root',
	//             // password: '123456',
	//             useNewUrlParser: true,
	//             useUnifiedTopology: true
	//         },
	// 		// mongoose global plugins, expected a function or an array of function and options
	// 		plugins: []
	// 	}
	// }

	return config;
};
